#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
//int cmp(int* e1, int* e2)
//{
//    return *e1 - *e2;
//}
//int main()
//{
//	int nums[] = { 1,3,1,5,4 };
//	int k = 2;
//	int numsSize = sizeof(nums) / sizeof(nums[0]);
//    qsort(nums, numsSize, 4, cmp);
//    int ans = 0;
//    for (int i = 0; i < numsSize; ++i)
//    {
//        int sum = 0;
//        int tmp = 0;
//        for (int j = i + 1; j < numsSize; ++j)
//        {
//            int t1 = nums[i] - nums[j];
//            if (t1 == k || t1 * -1 == k)
//            {
//                ++ans;
//                tmp = sum;
//                sum = nums[i] + nums[j];
//                if (tmp == sum)
//                {
//                    --ans;
//                }
//            }
//        }
//    }
//    return ans;
//}

//int main()
//{
//    int arr[26] = { 0 };
//    char pattern[] = "a";
//    char s[] = "a";
//    char* l = pattern;
//    while (*l)
//    {
//        ++arr[*l - 'a'];
//        ++l;
//    }
//    ++arr[s[0] - 'a'];
//    for (int i = 1; i < strlen(s) - 1; ++i)
//    {
//        if (s[i] == ' ' && s[i + 1] != ' ')
//        {
//            ++arr[s[i + 1] - 'a'];
//        }
//    }
//    int max = 0;
//    int min = 0;
//    for (int i = 0; i < 26; ++i)
//    {
//        if (arr[i] % 2 != 0)
//        {
//            return 0;
//        }
//        if (arr[i] > max)
//        {
//            min = max;
//            max = arr[i];
//        }
//    }
//    return max == min;
//}
//
//int main()
//{
//	int arr[26] = { 0 };
//	char s[] = "bb";
//    for (int i = 0; i < strlen(s); ++i)
//    {
//        ++arr[s[i] - 'a'];
//    }
//    int max = 0;
//    int min = 10000;
//    for (int i = 0; i < 26 && arr[i] != 0; ++i)
//    {
//        if (arr[i] > max)
//        {
//            max = arr[i];
//        }
//        if (arr[i] < min)
//        {
//            min = arr[i];
//        }
//    }
//    return max == min;
//}

//
//int main()
//{			
//	char s[] = "77889";
//    static char crr[1000] = { 0 };
//    int arr[126] = { 0 };
//    char* l = s;
//    while (*l)
//    {
//        ++arr[*l];
//        ++l;
//    }
//    int index = 0;
//    for (int i = 0; i < 126; ++i)
//    {
//        int s = 0;
//        int max = arr[i];
//        for (int j = i + 1; j < 126; ++j)
//        {
//            if (max < arr[j])
//            {
//                max = arr[j];
//                s = j;
//            }
//        }
//        int tmp = s;
//        while (arr[s])
//        {
//            crr[index++] = (char)tmp; 
//            --arr[s];
//        }
//        if (!s)
//        {
//            break;
//        }
//        arr[tmp] = 0;
//    }
//	return 0;
//}

//char* frequencySort(char* s) {
//    static char crr[500000] = { 0 };
//    int arr[125] = { 0 };
//    while (*s)
//    {
//        ++arr[*s];
//        ++s;
//    }
//    int index = 0;
//    for (int i = 0; i < 125; ++i)
//    {
//        int s = 0;
//        int max = arr[i];
//        for (int j = i + 1; j < 125; ++j)
//        {
//            if (max < arr[j])
//            {
//                max = arr[j];
//                s = j;
//            }
//        }
//        int tmp = s;
//        while (arr[s])
//        {
//            crr[index++] = (char)tmp;
//            --arr[s];
//        }
//        if (!s)
//        {
//            break;
//        }
//    }
//    for (int i = 0; i < 125; ++i)
//    {
//        if (arr[i] != 0)
//        {
//            crr[index++] = (char)i;
//        }
//    }
//    crr[index] = '\0';
//    return crr;
//}

void reverseStr(char* l, char* r)
{
    if (l < r)
    {
        char tmp = *l;
        *l = *r;
        *r = tmp;
        reverseStr(l + 1, r - 1);
    }
}
int main()
{
	char s[] = "1010";
    char b[] = "1011";
    char* l = s;
    char* r = l + strlen(s) - 1;
    reverseStr(l, r);
    l = b;
    r = l + strlen(b) - 1;
    reverseStr(l, r);

    int a1 = 0;
    int b1 = 0;
    for (int i = 0; i < strlen(s); ++i)
    {
        if (s[i] == '1')
        {
            a1 = (1 << i) ^ a1;
        }
    }
    for (int i = 0; i < strlen(b); ++i)
    {
        if (b[i] == '1')
        {
            b1 = (1 << i) ^ b1;
        }
    }
    int sum = a1 + b1;
    char arr[32] = { 0 };
    int index = 0;
    while (sum)
    {
        arr[index++] = (sum % 2) + '0';
        sum /= 2;
    }
    l = arr;
    r = l + index - 1;
    reverseStr(l, r);
    puts(arr);
	return 0;
}